package cn.bandeqing.finance.rpc;

import cn.bandeqing.base.resp.Resp;
import cn.bandeqing.base.resp.Table;
import cn.bandeqing.finance.req.*;
import cn.bandeqing.finance.resp.*;

import java.util.List;

public interface IFinanceRpc {

    Resp<Table<FinanceOrderTable>> table(FinanceOrderTableReq req);

    Resp<Void> handIn(HandInReq req);

    Resp<Void> writeOff(WriteOffReq req);

    Resp<Table<FinanceOrderCostTable>> costTable(FinanceOrderCostTableReq req);

    void costSaveOrUpdate(FinanceCostSaveOrUpdateReq req);

    void costSettlement(FinanceCostSettlementReq req);

    Resp<List<LabelValue>> workerSelect(FinanceWorkerSelectReq req);

    Resp<Void> costRemove(FinanceCostRemoveReq req);

    Resp<List<LabelValue>> userSelect(FinanceWorkerSelectReq req);

    Resp<Table<FinanceWorkerWalletTable>> workerWallteTable(FinanceWorkerWalletTableReq req);

    Resp<Void> workerWallteChange(FinanceWorkerWalletChangeReq req);

    Resp<Table<FinanceWorkerWalletRecordTable>> workerWallteRecordTable(FinanceWorkerWalletRecordTableReq req);

    Resp<Table<FinanceUserWalletTable>> userWallteTable(FinanceUserWalletTableReq req);

    Resp<Void> userWallteChange(FinanceUserWalletChangeReq req);

    Resp<Table<FinanceUserWalletRecordTable>> userWallteRecordTable(FinanceUserWalletRecordTableReq req);

    Resp<Void> checkWorkerWithdraw(CheckWorkerWithdrawReq req);

    Resp<Void> accountWorkerWithdraw(AccountWorkerWithdrawReq req);

    Resp<Void> checkUserWithdraw(CheckUserWithdrawReq req);

    Resp<Void> accountUserWithdraw(AccountUserWithdrawReq req);

}
